#include "ThreadCache.h"
#include <iostream>
#include "ConCurrent.h"

// #include <thread>

// using std::thread;

void job1()
{
  ConCurrent con; 
  for(int i = 0; i < 5; i++)
    con.alloc();
}


void job2()
{
  ConCurrent con; 
  for(int i = 0; i < 5; i++)
    con.alloc();
}

void threadCacheTest()
{
  thread t1(job1); 
  // thread t2(job2);

  t1.join();

  // t2.join();
}

void testPageCache()
{
  ThreadCache tCache;
  void *ptr1 = tCache.alloc(1);
  void *ptr2 = tCache.alloc(2);
  void *ptr3 = tCache.alloc(8);
  void *ptr4 = tCache.alloc(3);

  tCache.dealloc(ptr1, 8);
  tCache.dealloc(ptr2, 8);
  tCache.dealloc(ptr3, 8);
  tCache.dealloc(ptr4, 8);
}

int main()
{
  // threadCacheTest();
  testPageCache();

  cout << "success..." << endl;
}
